home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 74.3 KB | 2,263 lines | [TEXT/MPS ] |
- ;
- ; File: BlockStorage.a
- ;
- ; Contains: External interfaces to Block Storage Family
- ;
- ; Version: Technology: Copland
- ; Release: Universal Interfaces 3.0d3 on Copland DR1
- ;
- ; Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
- ;
- ; Bugs?: If you find a problem with this file, send the file and version
- ; information (from above) and the problem description to:
- ;
- ; Internet: apple.bugs@applelink.apple.com
- ; AppleLink: APPLE.BUGS
- ;
- ;
- IF &TYPE('__BLOCKSTORAGE__') = 'UNDEFINED' THEN
- __BLOCKSTORAGE__ SET 1
-
- IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
- include 'Types.a'
- ENDIF
- IF &TYPE('__MATH64__') = 'UNDEFINED' THEN
- include 'Math64.a'
- ENDIF
- IF &TYPE('__ERRORS__') = 'UNDEFINED' THEN
- include 'Errors.a'
- ENDIF
- IF &TYPE('__NAMEREGISTRY__') = 'UNDEFINED' THEN
- include 'NameRegistry.a'
- ENDIF
- IF &TYPE('__IOMEMORYLISTS__') = 'UNDEFINED' THEN
- include 'IOMemoryLists.a'
- ENDIF
- IF &TYPE('__IOITERATOR__') = 'UNDEFINED' THEN
- include 'IOIterator.a'
- ENDIF
- IF FOR_SYSTEM8_PREEMPTIVE THEN
- ;
- ;******************************************************************************
- ; *******************************************************************************
- ; *******************************************************************************
- ;
- ; Block Storage Constants
- ;
- ; *******************************************************************************
- ; *******************************************************************************
- ; *****************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; Store property names
- ;
- ; *****************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; Container property names
- ;
- ; *****************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; StoreOpenOptions is the set of permissions available when making a Connection
- ; to a Store. These options can be OR'd together in any combination.
- ;
- ; *****************************************************************************
- ;
-
- kBSStoreRead EQU $00000001 ; Allow reading/positioning
- kBSStoreWrite EQU $00000002 ; Allow writing
- kBSStoreExclusiveIO EQU $00000004 ; Don't allow another IO Connection to be opened
- kBSStoreExclusiveCntrl EQU $00000008 ; Don't allow another control Connection to be opened
- kBSStoreResizeOK EQU $00000010 ; Resizing of the Store is OK (but, of course, notify me)
- kBSStoreControl EQU $00000020 ; Allow me to control the Store
- ; typedef UInt32 BSStoreOpenOptions
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerOpenOptions is the set of permissions available when making a
- ; Connection to a Container. These options can be OR'd together in any combination.
- ;
- ; *****************************************************************************
- ;
-
- kBSContainerExclusiveCntrl EQU $00000001 ; Don't allow another Connection to be opened
- ; typedef UInt32 BSContainerOpenOptions
-
- ;
- ;****************************************************************************
- ;
- ; Accessibility states
- ;
- ; Accessibility States indicate how accessible a Block Storage Container or
- ; Store is. There are four currently defined. Their absolute values
- ; are unimportant, but have been split across fairly large ranges to
- ; allow for future values to be inserted between them.
- ;
- ; kBSOnline and kBSOffline represent the two extremes of accessibility -
- ; nothing can be less accessible than kBSOffline (that is the state you
- ; send a Store to when you are about to delete it) and nothing can be
- ; more online than kBSOnline, which means you are fully, 100% available.
- ;
- ; ***************************************************************************
- ;
-
- kBSOnline EQU $0FFFFFFF
- kBSPowerSave EQU $0A000000
- kBSOutOfDrive EQU $01000000
- kBSOffline EQU 0
- ; typedef UInt32 BSAccessibilityState
-
- ;
- ;****************************************************************************
- ;
- ; Component types
- ;
- ; ***************************************************************************
- ;
-
- kBSExternalDeviceComponent EQU 1
- kBSStoreComponent EQU 2
- ; typedef UInt32 BSComponentType
-
- ;
- ;****************************************************************************
- ;
- ; Block List Seek specifiers
- ;
- ; ***************************************************************************
- ;
-
- kBSBlockListSeekByteAbsolute EQU 1
- kBSBlockListSeekByteRelative EQU 2
- kBSBlockListSeekExtentAbsolute EQU 3
- kBSBlockListSeekExtentRelative EQU 4
- kBSBlockListSeekBlockAbsolute EQU 5
- kBSBlockListSeekBlockRelative EQU 6
- ; typedef UInt32 BSBlockListWhence
-
- ;
- ;****************************************************************************
- ;
- ; Selectors for BSStoreGetDeviceData - specifies which set of Stores to
- ; return
- ;
- ; ***************************************************************************
- ;
-
- kBSStoreGetLeafStores EQU 1
- kBSStoreGetAllStores EQU 2
- kBSStoreGetPrimaryStores EQU 3
- ; typedef UInt32 BSStoreGetSelector
-
- ;
- ;****************************************************************************
- ;
- ; Format specifiers - these are generic categories. There may be further
- ; distinctions within these categories for number of blocks, etc.
- ;
- ; ***************************************************************************
- ;
-
- kBSFormatFloppyGCR EQU 'gcr '
- kBSFormatFloppyMFM EQU 'mfm '
- kBSFormatSCSI EQU 'scsi'
- kBSFormatATA EQU 'ata '
- kBSNotFormatable EQU 'none'
- ; typedef OSType BSStoreFormatType
-
-
- kBSMaxFormats EQU 8
- ; Maximum number of formats a Mapping plug-in can support
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage Error codes
- ;
- ; *****************************************************************************
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;****************************************************************************
- ;
- ; Basic error types
- ;
- ; ***************************************************************************
- ;
-
- E_Success EQU $00000000
- E_LoopTermination EQU $08000000
- E_Underflow EQU $10000000
- E_Overflow EQU $18000000
- E_AlreadyExists EQU $20000000
- E_NotFound EQU $28000000
- E_AccessViolation EQU $30000000
- E_Busy EQU $38000000
- E_VersionMismatch EQU $40000000
- E_Canceled EQU $48000000
- E_OutOfResources EQU $50000000
- E_Timeout EQU $58000000
- E_ParameterError EQU $60000000
- E_Fatal EQU $68000000
- E_Unknown EQU $F8000000
- ;
- ;****************************************************************************
- ;
- ; Block Storage Error ID
- ;
- ; ***************************************************************************
- ;
-
- E_BlockStorageBias EQU $04F00000
- ;
- ;****************************************************************************
- ;
- ; Block Storage Error Categories
- ;
- ; ***************************************************************************
- ;
-
- E_BSFamilyError EQU $04F00000
- E_BSExpertError EQU $04F08000
- E_BSMappingPlugInError EQU $04F10000
- E_BSPartitioningPlugInError EQU $04F18000
- E_BSContainerPlugInError EQU $04F20000
- E_BSBlockListError EQU $04F28000
- E_BSSuccess EQU $00000000
- ;
- ;****************************************************************************
- ;
- ; Family Errors
- ;
- ; ***************************************************************************
- ;
-
- E_BSOutOfResources EQU $54F00001
- E_BSStoreInUse EQU $34F00001
- E_BSStoreWriteProtected EQU $34F00002
- E_BSStoreNotFound EQU $2CF00001
- E_BSBadMessage EQU $64F00001
- E_BSBadConnection EQU $64F00002
- E_BSTableTooSmall EQU $64F00003
- E_BSNullParameters EQU $64F00004
- E_BSParameterError EQU $64F00005
- E_BSUnimplemented EQU $44F00001
- ;
- ;****************************************************************************
- ;
- ; Expert Errors
- ;
- ; ***************************************************************************
- ;
-
- E_BSEPlugInNotFound EQU $2CF08001
- E_BSENoPlugInMatch EQU $2CF08002
- E_BSENoMoreStores EQU $54F08001
- E_BSEHierarchyTooDeep EQU $54F08002
- E_BSEOutOfResources EQU $54F08003
- ;
- ;****************************************************************************
- ;
- ; Mapping Plug-in Errors
- ;
- ; ***************************************************************************
- ;
-
- E_BSMPIOutOfStoreBounds EQU $64F10001
- E_BSMPITooManyMappings EQU $64F10002
- E_BSMPIBadMappingParams EQU $64F10003
- E_BSMPIMappingNotSupported EQU $64F10004
- E_BSMPIStateNotSupported EQU $64F10005
- E_BSMPIWriteProtected EQU $34F10001
- E_BSMPICannotGoToState EQU $34F10002
- E_BSMPIUnitNotResponding EQU $6CF10001
- E_BSMPITransferError EQU $6CF10002
- E_BSMPIMemoryAccessFault EQU $6CF10003
- E_BSMPINoPlugIn EQU $6CF10004
- E_BSMPIMediaRemoved EQU $6CF10005
- E_BSMPIOutOfResources EQU $54F10001
- ;
- ;****************************************************************************
- ;
- ; Partitioning Plug-in Errors
- ;
- ; ***************************************************************************
- ;
-
- E_BSPPIMappingNotSupported EQU $64F18001
- E_BSPPIOverlappingPartition EQU $64F18002
- E_BSPPIOutOfStoreBounds EQU $64F18003
- E_BSPPIPartitionNonExistant EQU $64F18004
- E_BSPPITooManyPartitions EQU $64F18005
- E_BSPPINoPlugIn EQU $6CF18001
- E_BSPPIOutOfResources EQU $54F18002
- ;
- ;****************************************************************************
- ;
- ; Container Plug-in Errors
- ;
- ; ***************************************************************************
- ;
- ;
- ;****************************************************************************
- ;
- ; Block List Errors
- ;
- ; ***************************************************************************
- ;
-
- E_BSBLEndOfList EQU $14F28001
- E_BSBLParameterError EQU $64F28001
- E_BSBLBadBlockList EQU $64F28002
- E_BSBLBadBlock EQU $64F28003
- E_BSBLAlreadyFinalized EQU $24F28001
- E_BSBLOutOfResources EQU $54F28001
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage Types and Structures
- ;
- ; *****************************************************************************
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;****************************************************************************
- ;
- ; Store and Container Persistent Identifiers
- ;
- ; ***************************************************************************
- ;
- BSStoreID RECORD 0
- elements ds.b 12
- sizeof EQU * ; size: $C (12)
- ENDR
-
-
- BSContainerID RECORD 0
- elements ds.b 12
- sizeof EQU * ; size: $C (12)
- ENDR
-
-
- ;
- ;****************************************************************************
- ;
- ; Connection ID's
- ;
- ; ***************************************************************************
- ;
- ; typedef ObjectID BSContainerConnID
-
- ; typedef ObjectID BSStoreConnID
-
- ;
- ;****************************************************************************
- ;
- ; Plug-in run-time references. References the plug-in in general, not
- ; a specific instance of it
- ;
- ; ***************************************************************************
- ;
-
-
-
-
-
-
- ;
- ;****************************************************************************
- ;
- ; Store and Container Run-Time References
- ;
- ; ***************************************************************************
- ;
- BSStoreRef RECORD 0
- f ds RegEntryRef
- sizeof EQU * ; size: $10 (16)
- ENDR
-
-
- BSContainerRef RECORD 0
- f ds RegEntryRef
- sizeof EQU * ; size: $10 (16)
- ENDR
-
-
- ;
- ;****************************************************************************
- ;
- ; Store and Container Navigation API types
- ;
- ; ***************************************************************************
- ;
- ; typedef ObjectID BSStoreIteratorID
-
- ; typedef ObjectID BSContainerIteratorID
-
- ; typedef RegPropertyInstance BSStorePropertyInstance
-
- ; typedef RegPropertyInstance BSContainerPropertyInstance
-
- ;
- ;****************************************************************************
- ;
- ; Device block descriptor types
- ;
- ; ***************************************************************************
- ;
- BSByteCount RECORD 0
- f ds UInt64
- sizeof EQU * ; size: $8 (8)
- ENDR
-
-
-
-
-
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListDescriptorInfo - information about a Block List Descriptor
- ;
- ; *****************************************************************************
- ;
- BSBlockListDescriptorInfo RECORD 0
- bias ds BSByteCount ; offset: $0 (0)
- start ds BSByteCount ; offset: $8 (8)
- length ds.l 1 ; offset: $10 (16)
- parentDescriptor ds.l 1 ; offset: $14 (20)
- parentList ds.l 1 ; offset: $18 (24)
- sizeof EQU * ; size: $1C (28)
- ENDR
- ; typedef struct BSBlockListDescriptorInfo * BSBlockListDescriptorInfoPtr
-
- ;
- ;****************************************************************************
- ;
- ; BSStoreFormatInfo
- ;
- ; ***************************************************************************
- ;
- ; typedef ItemCount BSFormatIndex
-
- BSStoreFormatInfo RECORD 0
- formatType ds.l 1 ; offset: $0 (0)
- formatSize ds BSByteCount ; offset: $4 (4)
- formatNum ds.l 1 ; offset: $C (12) ; Format identifier - specific to Mapping plug-in
- sizeof EQU * ; size: $10 (16)
- ENDR
- ;
- ;****************************************************************************
- ;
- ; BSStoreInfo is used to return information about a Store
- ;
- ; ***************************************************************************
- ;
- BSStoreInfo RECORD 0
- storeID ds BSStoreID ; offset: $0 (0)
- storeSize ds BSByteCount ; offset: $C (12)
- readBlockSize ds BSByteCount ; offset: $14 (20) ; minimum read size & granularity
- writeBlockSize ds BSByteCount ; offset: $1C (28) ; minimum write size & granularity
- container ds BSContainerRef ; offset: $24 (36) ; the container containing this Store
- numChildren ds.l 1 ; offset: $34 (52)
- numParents ds.l 1 ; offset: $38 (56)
- numPartitions ds.l 1 ; offset: $3C (60) ; Number of partitions in use
- maxPartitions ds.l 1 ; offset: $40 (64) ; Maximum number of partitions possible
- isPartitioned ds.b 1 ; offset: $44 (68) ; True if a partitioning plug-in is associated with this Store
- isEjectable ds.b 1 ; offset: $45 (69)
- isBootDevice ds.b 1 ; offset: $46 (70)
- isWriteable ds.b 1 ; offset: $47 (71)
- hasAutoEjectHardware ds.b 1 ; offset: $48 (72)
- isFormattable ds.b 1 ; offset: $49 (73)
- isPartitionable ds.b 1 ; offset: $4A (74)
- isFilesystem ds.b 1 ; offset: $4B (75)
- mappingPlugIn ds.l 1 ; offset: $4C (76)
- partitioningPlugIn ds.l 1 ; offset: $50 (80)
- curFormat ds BSStoreFormatInfo ; offset: $54 (84)
- possibleFormats ds.b 8 * BSStoreFormatInfo.sizeof ; offset: $64 (100)
- name ds Str255 ; offset: $E4 (228) ; Max name size is 255 (0 terminated)
- typeName ds Str32 ; offset: $1E4 (484) ; Max type name is 32 (0 terminated)
- ORG 518
- sizeof EQU * ; size: $206 (518)
- ENDR
- ; typedef struct BSStoreInfo * BSStoreInfoPtr
-
- ;
- ;****************************************************************************
- ;
- ; BSContainerInfo is used to return information about a Container
- ;
- ; ***************************************************************************
- ;
- BSContainerInfo RECORD 0
- device ds RegEntryRef ; offset: $0 (0)
- numChildren ds.l 1 ; offset: $10 (16)
- ejectable ds.b 1 ; offset: $14 (20)
- ORG 22
- sizeof EQU * ; size: $16 (22)
- ENDR
- ; typedef struct BSContainerInfo * BSContainerInfoPtr
-
- ;
- ;****************************************************************************
- ;
- ; BSPartitionInfo is used to return information about a Partition
- ;
- ; ***************************************************************************
- ;
- BSPartitionDescriptor RECORD 0
- entryNum ds.l 1 ; offset: $0 (0)
- start ds BSByteCount ; offset: $4 (4)
- len ds BSByteCount ; offset: $C (12)
- destStoreID ds BSStoreID ; offset: $14 (20)
- isPartitionable ds.b 1 ; offset: $20 (32)
- isFilesystem ds.b 1 ; offset: $21 (33)
- reserved1 ds.b 1 ; offset: $22 (34)
- reserved2 ds.b 1 ; offset: $23 (35)
- name ds Str255 ; offset: $24 (36) ; Max name size is 255 (0 terminated)
- typeName ds Str32 ; offset: $124 (292) ; Max type name is 32 (0 terminated)
- ORG 326
- sizeof EQU * ; size: $146 (326)
- ENDR
- ; typedef struct BSPartitionDescriptor * BSPartitionDescriptorPtr
-
- ;
- ;****************************************************************************
- ;
- ; BSStoreComponent describes a component of a Store. A component may
- ; be an external device or another Store.
- ;
- ; ***************************************************************************
- ;
- BSStoreComponent RECORD 0
- componentType ds.l 1 ; offset: $0 (0)
- startingOffset ds BSByteCount ; offset: $4 (4) ; Where in the Store this
- ; component will be placed
- sourceNode ds RegEntryRef ; offset: $C (12) ; Physical components
- srcStore ds BSStoreRef ; offset: $1C (28) ; Logical components
- partitionInfo ds BSPartitionDescriptor ; offset: $2C (44) ; Logical components
- ORG 370
- sizeof EQU * ; size: $172 (370)
- ENDR
- ; typedef struct BSStoreComponent * BSStoreComponentPtr
-
- ;
- ;****************************************************************************
- ;
- ; ***************************************************************************
- ;
- BSStoreIOIteratorData RECORD 0
- IOCI ds IOCommonInfo ; offset: $0 (0)
- info ds BSStoreInfo ; offset: $14 (20)
- ORG 538
- sizeof EQU * ; size: $21A (538)
- ENDR
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage API Functions
- ;
- ; These functions make up the Block Storage API. All functions are callable
- ; from the user or privileged bands. The API is split into the following
- ; sections:
- ;
- ; Navigation - operations to find a Store or Container and its
- ; relationship to other Stores and Containers
- ;
- ; Connections - operations to open and close connections with Stores and
- ; Containers
- ;
- ; Block Lists - operations to create and manipulate Block Lists, used
- ; as inputs for I/O operations
- ;
- ; I/O - operations to read and write date to Stores
- ;
- ; Accessibility - operations to change the accessibility of Store and
- ; Containers. Power-down and eject are handled via this interface
- ;
- ; Configuration - operations to add new devices, replace plug-ins,
- ; format and partition Stores and modify the relationships of
- ; Stores and Containers to each other.
- ;
- ; *****************************************************************************
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage Navigation API
- ;
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; BSStoreGetDeviceData - a simple iteration model to retrieve all of the
- ; Stores, the leaf Stores or the primary Stores.
- ;
- ; Inputs: selector - which set of Stores to retrieve
- ; kBSStoreGetLeafStores retrieves leaf stores
- ; kBSStoreGetAllStores retrieves all stores
- ; kBSStoreGetPrimaryStores retrieves only primary stores
- ; requestItemCount - the size of the buffer
- ;
- ; Outputs: iteratorData - the array of BSStoreIOIteratorData structures
- ; to be filled in
- ; totalItemCount - the actual number of items available (may be
- ; more than requestItemCount, though only requestItemCount
- ; structures will be filled in in iteratorData)
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreGetDeviceData(BSStoreGetSelector selector, ItemCount requestItemCount, ItemCount *totalItemCount, BSStoreIOIteratorData *iteratorData)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreGetDeviceData
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreIteratorCreate - Creates an iterator for Block Storage Stores which
- ; will be initially placed on startingStore. If starting Store is NULL
- ; the iterator will be placed "in the soup" at the root of the Store
- ; hierarchy
- ;
- ; Inputs: startingStore - the Store to begin at
- ;
- ; Outputs: newIterator - the returned iterator
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreIteratorCreate(BSStoreRef *startingStore, BSStoreIteratorID *newIterator)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreIteratorCreate
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreIteratorDispose - disposes of an iterator, freeing all resources
- ; associated with it
- ;
- ; Inputs: disposeIterator - the iterator to dispose
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreIteratorDispose(BSStoreIteratorID disposeIterator)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreIteratorDispose
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreIteratorEnter - Moves the iterator into the child the iterator is
- ; currently on, placing it on the first child
- ;
- ; Inputs: iterator - the iterator to move
- ;
- ; Outputs: newStore - the Store we've just exited
- ;
- ; Returns: E_BSSuccessful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreIteratorEnter(BSStoreIteratorID iterator, BSStoreRef *newStore)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreIteratorEnter
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreIteratorExit - Moves the iterator into the parent the iterator is
- ; currently on, placing the iterator on the Store it exited.
- ;
- ; Inputs: iterator - the iterator to move
- ;
- ; Outputs: newStore - the Store we've been placed on
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreIteratorExit(BSStoreIteratorID iterator, BSStoreRef *newStore)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreIteratorExit
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreIteratorRestartChildren - Places the iterator on the first child
- ; in the current Store
- ;
- ; Inputs: iterator - the iterator to restart
- ;
- ; Outputs: newChild - the child we've been placed on
- ;
- ; Returns: E_BSSuccess if succesful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreIteratorRestartChildren(BSStoreIteratorID iterator, BSStoreRef *newChild)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreIteratorRestartChildren
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreIteratorRestartParent - Places the iterator on the first parent
- ; in the current Store
- ;
- ; Inputs: iterator - the iterator to restart
- ;
- ; Outputs: newParent - the parent we've been placed on
- ;
- ; Returns: E_BSSuccess if succesful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreIteratorRestartParent(BSStoreIteratorID iterator, BSStoreRef *newParent)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreIteratorRestartParent
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreIteratorNextChild - Moves the iterator to the next child
- ;
- ; Inputs: iterator - the iterator to move
- ;
- ; Outputs: newChild - the child we've been placed on
- ; changed - true if a parent or child has been added or deleted
- ; to this Store since the last BSStoreIteratorNextChild or
- ; BSStoreIteratorNextParent call
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreIteratorNextChild(BSStoreIteratorID iterator, BSStoreRef *newChild, Boolean *changed)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreIteratorNextChild
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreIteratorNextParent - Moves the iterator to the next parent
- ;
- ; Inputs: iterator - iterator to move
- ; changed - true if a parent or child has been added or deleted
- ; since the last BSStoreIteratorNextChild or
- ; BSStoreIteratorNextParent call
- ;
- ; Outputs: newParent - the parent we've been placed on
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreIteratorNextParent(BSStoreIteratorID iterator, BSStoreRef *newParent, Boolean *changed)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreIteratorNextParent
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerIteratorCreate - Creates an iterator for Block Storage Containers
- ; which will be initially placed on startingContainer. If starting
- ; Container is NULL the iterator will be placed "in the soup" at the root
- ; of the Container hierarchy.
- ;
- ; Inputs: startingContainer - the container to start at or NULL to start
- ; at the root of the Container hierarchy
- ;
- ; Outputs: newIterator - the created iterator
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerIteratorCreate(BSContainerRef *startingContainer, BSContainerIteratorID *newIterator)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerIteratorCreate
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerIteratorDispose - disposes of an iterator, freeing all resources
- ; associated with it
- ;
- ; Inputs: disposeIterator - the iterator to dispose
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerIteratorDispose(BSContainerIteratorID disposeIterator)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerIteratorDispose
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerIteratorEnter - Moves the iterator into the child the iterator is
- ; currently on, placing it on the first child
- ;
- ; Inputs: iterator - the iterator to move
- ;
- ; Outputs: newContainer - the Container we've been placed on
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerIteratorEnter(BSContainerIteratorID iterator, BSContainerRef *newContainer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerIteratorEnter
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerIteratorExit - exits to the parent of the current Container,
- ; placing the iterator on the Container it exited. (Containers may have
- ; only one parent)
- ;
- ; Inputs: iterator - the iterator to move
- ;
- ; Outputs: newContainer - the Container we've just exited
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerIteratorExit(BSContainerIteratorID iterator, BSContainerRef *newContainer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerIteratorExit
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerIteratorRestartChildren - Places the iterator on the first child
- ; in the current Container
- ;
- ; Inputs: iterator - the iterator to restart
- ;
- ; Outputs: newChild - the child we've been placed on
- ;
- ; Returns: E_BSSuccess if succesful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerIteratorRestartChildren(BSContainerIteratorID iterator, BSContainerRef *newChild)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerIteratorRestartChildren
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerIteratorNextChild - Moves the iterator to the next child
- ;
- ; Inputs: iterator - the iterator to move
- ;
- ; Outputs: newChild - the child we've been placed on
- ; changed - true if a child has been added or deleted to this
- ; Container since the last BSContainerIteratorNextChild.
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerIteratorNextChild(BSContainerIteratorID iterator, BSContainerRef *newChild)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerIteratorNextChild
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreFindByID - finds a Store by its identifier and returns a ref
- ;
- ; Inputs: storeID - the Store ID to find
- ;
- ; Outputs: foundStore - the found reference
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreFindByID(BSStoreID storeID, BSStoreRef *foundStore)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreFindByID
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreGetPropertySize - retrieves the size of the named property from the
- ; Store.
- ;
- ; Inputs: store - the Store to retrieve the property from
- ; propertyName - the name of the property to retrieve the size of
- ; propertyInstance - the instance of the property within this Store
- ;
- ; Outputs: propertySize - filled in with the size of the property
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreGetPropertySize(BSStoreRef *store, char *propertyName, BSStorePropertyInstance propertyInstance, ByteCount *propertySize)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreGetPropertySize
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreGetProperty - retrieves the named property from the Store.
- ;
- ; Inputs: store - the Store to retrieve the property from
- ; propertyName - the name of the property to retrieve the size of
- ; propertyInstance - the instance of the property within this Store
- ; propertySize - the size of the buffer passed in (on input)
- ;
- ; Outputs: propertyValue - a pointer to the buffer to be filled in
- ; propertySize - the size filled in (on exit)
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreGetProperty(BSStoreRef *store, char *propertyName, BSStorePropertyInstance propertyInstance, void *propertyValue, ByteCount *propertySize)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreGetProperty
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerGetPropertySize - retrieves the size of the named property from
- ; the Container.
- ;
- ; Inputs: container - the Container to retrieve the property from
- ; propertyName - the name of the property to retrieve the size of
- ; propertyInstance - the instance of the property within this Store
- ;
- ; Outputs: propertySize - filled in with the size of the property
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerGetPropertySize(BSContainerRef *container, char *propertyName, BSContainerPropertyInstance propertyInstance, ByteCount *propertySize)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerGetPropertySize
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerGetProperty - retrieves the named property from the Container.
- ;
- ; Inputs: container - the Container to retrieve the property from
- ; propertyName - the name of the property to retrieve the size of
- ; propertyInstance - the instance of the property within this
- ; Container
- ; propertySize - the size of the buffer passed in (on input)
- ;
- ; Outputs: propertyValue - a pointer to the buffer to be filled in
- ; propertySize - the size filled in (on exit)
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerGetProperty(BSContainerRef *container, char *propertyName, BSContainerPropertyInstance propertyInstance, ByteCount *propertySize)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerGetProperty
- ENDIF
-
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage Connection Operations
- ;
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; BSStoreOpen - Opens a Connection to a Store
- ;
- ; Inputs: store - the Store to be opened
- ; options - options to the connection
- ;
- ; Outputs: newConnection - the created connection if successful
- ;
- ; Returns: E_BSSuccess on success
- ; E_BSOutOfResources if resources for the connection cannot be allocated
- ; E_BSStoreInUse if the Store has an exclusive connection or if an
- ; exclusive connection was requested to a Store with any connections
- ; open.
- ; E_BSStoreWriteProtected if Write access was requested to a read only
- ; Store
- ; E_BSStoreNotFound if store did not match any existing Stores
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreOpen(BSStoreRef *store, BSStoreOpenOptions options, BSStoreConnID *newConnection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreOpen
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnClose - closes a Connection to a Store
- ;
- ; Inputs: connection - the connection to be closed
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnClose(BSStoreConnID connection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnClose
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerOpen - Opens a Connection to a Container
- ;
- ; Inputs: container - the Container to be opened
- ; options - options to the connection
- ;
- ; Outputs: newConnection - the created connection if successful
- ;
- ; Returns: E_BSSuccess on success
- ; E_BSOutOfResources if resources for the connection cannot be allocated
- ; E_BSContainerInUse if the Container has an exclusive connection or if an
- ; exclusive connection was requested to a Container with any connections
- ; open.
- ; E_BSContainerNotFound if container did not match any existing Containers
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerOpen(BSContainerRef *container, BSContainerOpenOptions options, BSContainerConnID *newConnection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerOpen
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnClose - closes a Connection to a Container
- ;
- ; Inputs: connection - the connection to be closed
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnClose(BSContainerConnID connection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnClose
- ENDIF
-
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage Block List Operations
- ;
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; BSBlockListCreate - Creates a block list for use with Block Storage
- ;
- ; Inputs: numAnticipatedRange - the number of ranges expected
- ;
- ; Outputs: newList - the new list to which ranges may be added
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListCreate(ItemCount numAnticipatedRanges, BSBlockListRef *newList)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListCreate
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListAddRange - Appends a new range to an existing block list
- ;
- ; Inputs: appendList - the list to add the new range to
- ; startingOffset - the offset, in bytes on the device of the
- ; start of the range
- ; length - the length, in bytes, of the range
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListAddRange(BSBlockListRef appendList, BSByteCount startingOffset, ByteCount length)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListAddRange
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListFinalize - creates a descriptor to be used in a Block Storage
- ; read or write call from the memory list. After this call has been made
- ; no more ranges may be added to the list.
- ;
- ; Inputs: finalizeList - the list to be finalized
- ;
- ; Outputs: newDescriptor - the descriptor, to be used in a read/write call
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListFinalize(BSBlockListRef finalizeList, BSBlockListDescriptorRef *newDescriptor)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListFinalize
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListDelete - Removes a Block List. All resources
- ; associated with this Block List are relinquished. This includes memory
- ; which was prepared for any of its descriptors. All descriptors are
- ; invalidated. This call should only be used to clean-up Block Lists
- ; in an abort condition. In normal usage, use BSBlockListDescriptorDelete
- ; to remove all descriptors and free the Block List.
- ;
- ; Inputs: deleteList - the descriptor to delete
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListDelete(BSBlockListRef deleteList)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListDelete
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListDescriptorDelete - Removes a Block List Descriptor. All resources
- ; associated with this descriptor are relinquished. This includes memory
- ; which was prepared for this descriptor. If this was the last descriptor
- ; for a BlockList the BlockList is free'd also.
- ;
- ; Inputs: deleteDescriptor - the descriptor to delete
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListDescriptorDelete(BSBlockListDescriptorRef deleteDescriptor)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListDescriptorDelete
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListDescriptorSeek - Changes the offset within the Block List descriptor
- ;
- ; Inputs: seekDescriptor - the descriptor to seek within
- ; whence - how to seek
- ; offset - where to seek
- ;
- ; Outputs: newOffset - what the current offset is now
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListDescriptorSeek(BSBlockListDescriptorRef seekDescriptor, BSBlockListWhence whence, SInt64 offset, BSByteCount *newOffset)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListDescriptorSeek
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListGetExtent - Gets an extent at the current offset for up to the
- ; specified length
- ;
- ; Inputs: srcDesriptor - the descriptor to get the extent from
- ; requestedLen - how long an extent to try to get
- ;
- ; Outputs: startingByte - the starting byte address in the device of the
- ; extent
- ; extentLen - how long an extent within the descriptor was found
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListDescriptorGetExtent(BSBlockListDescriptorRef srcDescriptor, ByteCount requestedLen, BSByteCount *startingByte, ByteCount *extentLen)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListDescriptorGetExtent
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListAddSimpleDescriptor - adds a new descriptor to a block list. The
- ; new descriptor begins at the current offset of the srcDescriptor. The
- ; offset of the srcDescriptor is updated to point at the first byte after
- ; the end of the new descriptor.
- ;
- ; Inputs: srcDescriptor - the descriptor to base the new descriptor upon
- ; length - how much the new descriptor should cover
- ; bias - the bias offset to be applied to the block address of
- ; srcDescriptor. When addresses are retrieve from newDescriptor
- ; bias will be added.
- ;
- ; Outputs: newDescriptor - the new descriptor
- ;
- ; Returns: E_BSSucess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListAddSimpleDescriptor(BSBlockListDescriptorRef srcDescriptor, BSByteCount length, BSByteCount bias, BSBlockListDescriptorRef *newDescriptor)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListAddSimpleDescriptor
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListDescriptorGetInfo - returns information about the specified
- ; descriptor
- ;
- ; Inputs: infoDescriptor - the descriptor to get information about
- ;
- ; Outputs: info - the information
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListDescriptorGetInfo(BSBlockListDescriptorRef infoDescriptor, BSBlockListDescriptorInfo *info)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListDescriptorGetInfo
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListDescriptorCheckBlockSizes - checks the extents specified by the
- ; descriptor and ensures that all start at 0 mod blockSize and are
- ; 0 mod blockSize in length.
- ;
- ; Inputs: checkDescriptor - the descriptor to check
- ; blockSize - the block size to check for
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBlockListBadBlockSize if any extents are mis-aligned
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListDescriptorCheckBlockSizes(BSBlockListDescriptorRef checkDescriptor, UInt32 blockSize)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListDescriptorCheckBlockSizes
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSBlockListDescriptorCheckBounds - checks the extents specified by the
- ; descriptor and ensures that none specify addresses beyond bound
- ;
- ; Inputs: checkDescriptor - the descriptor to check
- ; bound - the highest allowable address
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBlockListBadBlockSize if any extents are mis-aligned
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSBlockListDescriptorCheckBounds(BSBlockListDescriptorRef checkDescriptor, BSByteCount bound)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSBlockListDescriptorCheckBounds
- ENDIF
-
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage I/O Operations
- ;
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnRead - reads data from the Store indicated by the Connection.
- ; This is the simple version of the call, taking only a single range
- ;
- ; Inputs: readConnection - the connection to the Store to be read from
- ; startingOffset - the 64-bit offset into the device to start the
- ; read at
- ; bytesToRead - the 32-bit, unsigned, number of bytes to read
- ;
- ; Outputs: buffer - filled in with the bytes read
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIOutOfStoreBounds if the request exceeds the boundaries of
- ; the Store
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnRead(BSStoreConnID readConnection, BSByteCount startingOffset, ByteCount bytesToRead, void *buffer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnRead
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnWrite - writes data to the Store a Connection indicates. This is
- ; the simple version of the call taking only a single range.
- ;
- ; Inputs: writeConnection - the connection to the Store to be read from
- ; srcMem - where the data is to be taken from
- ; destBlocks - the blocks on the Store where the data is to be placed
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIOutOfStoreBounds if the request exceeds the boundaries of
- ; the Store
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnWrite(BSStoreConnID writeConnection, BSByteCount startingOffset, ByteCount bytesToWrite, void *buffer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnWrite
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnReadSG - reads data from the Store indicated by the Connection.
- ; This is the scatter/gather version of the call. The Block List is
- ; generated by the calls above, the Memory List calls can be found in
- ; <MemoryLists.h>.
- ;
- ; Inputs: readConnection - the connection to the Store to be read from
- ; srcBlocks - a descriptor indicating the ranges on the device
- ; to be read
- ; destMemory - a Memory List descriptor indicating where the
- ; data is to be placed
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIOutOfStoreBounds if the request exceeds the boundaries of
- ; the Store
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnReadSG(BSStoreConnID readConnection, BSBlockListDescriptorRef srcBlocks, MemListDescriptorRef destMemory)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnReadSG
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnWriteSG - writes data to the Store a Connection indicates. This
- ; is the scatter/gather version of the call. The Block List is
- ; generated by the calls above, the Memory List calls can be found in
- ; <MemoryLists.h>.
- ;
- ; Inputs: writeConnection - the connection to the Store to be read from
- ; srcMem - where the data is to be taken from
- ; destBlocks - the blocks on the Store where the data is to be placed
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIOutOfStoreBounds if the request exceeds the boundaries of
- ; the Store
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnWriteSG(BSStoreConnID writeConnection, MemListDescriptorRef srcMemory, BSBlockListDescriptorRef destBlocks)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnWriteSG
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnReadAsync - reads data from the Store indicated by the Connection.
- ; This is the asynchronous version of the simple call, taking only a
- ; single range.
- ;
- ; Inputs: readConnection - the connection to the Store to be read from
- ; startingOffset - the 64-bit offset into the device to start the
- ; read at
- ; bytesToRead - the 32-bit, unsigned, number of bytes to read
- ; notification - how the calling app wishes to be notified
- ;
- ; Outputs: buffer - filled in with the bytes read
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIOutOfStoreBounds if the request exceeds the boundaries of
- ; the Store
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnReadAsync(BSStoreConnID readConnection, BSByteCount startingOffset, ByteCount bytesToRead, KernelNotification *notification, void *buffer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnReadAsync
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnWriteAsync - writes data to the Store a Connection indicates.
- ; This is the asynchronous version of the simple call, taking only a
- ; single range.
- ;
- ; Inputs: writeConnection - the connection to the Store to be read from
- ; srcMem - where the data is to be taken from
- ; destBlocks - the blocks on the Store where the data is to be placed
- ; notification - how the caller wishes to be notified
- ;
- ; Outputs: bytesWritten - the number of bytes written
- ; (srcMem must remain a valid memory area until
- ; notification of completion is received)
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIOutOfStoreBounds if the request exceeds the boundaries of
- ; the Store
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnWriteAsync(BSStoreConnID writeConnection, BSByteCount startingOffset, ByteCount bytesToWrite, KernelNotification *notification, void *buffer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnWriteAsync
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnReadSGAsync - reads data from the Store indicated by the Connection.
- ; This is the asynchronous version of the scatter/gather call.
- ; The Block List is generated by the calls above, the Memory List calls
- ; can be found in <MemoryLists.h>.
- ;
- ; Inputs: readConnection - the connection to the Store to be read from
- ; srcBlocks - a descriptor indicating the ranges on the device
- ; to be read
- ; destMemory - a Memory List descriptor indicating where the
- ; data is to be placed
- ; notification - how the caller wishes to be notified
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIOutOfStoreBounds if the request exceeds the boundaries of
- ; the Store
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnReadSGAsync(BSStoreConnID readConnection, BSBlockListDescriptorRef srcBlocks, MemListDescriptorRef destMemory, KernelNotification *notification)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnReadSGAsync
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnWriteSGAsync - writes data to the Store a Connection indicates.
- ; This is the asynchronous version of the scatter/gather call. The
- ; Block List is generated by the calls above, the Memory List calls can
- ; be found in <MemoryLists.h>.
- ;
- ; Inputs: writeConnection - the connection to the Store to be read from
- ; srcMem - where the data is to be taken from
- ; (the memory areas indicated by srcMem must remain valid until
- ; notification is received)
- ; destBlocks - the blocks on the Store where the data is to be placed
- ; notification - how the caller wishes to be notified of completion
- ;
- ; Outputs: <none>
- ;
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIOutOfStoreBounds if the request exceeds the boundaries of
- ; the Store
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnWriteSGAsync(BSStoreConnID writeConnection, MemListDescriptorRef srcMemory, BSBlockListDescriptorRef destBlocks, KernelNotification *notification)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnWriteSGAsync
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnFlush - Flushes caches for this Store and any Stores this Store
- ; is derived from.
- ;
- ; Inputs: flushConnection - the connection to the Store to be flushed
- ;
- ; Outputs: <none>
- ;
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSMPIUnitNotResponding if the device does not respond
- ; E_BSMPITransferError if some error was detected during the transfer
- ; E_BSMPIMemoryAccessFault if the destination memory was not accessible
- ; E_BSMPIOutOfResources if a necessary resource (usually memory) could
- ; not be allocated
- ; E_BSMPIMediaRemoved if the media was removed
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnFlush(BSStoreConnID flushConnection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnFlush
- ENDIF
-
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage Accessibility Operations
- ;
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnGoToAccessibilityState - requests that a Store change its
- ; accessibility state to the one desired
- ;
- ; Inputs: connection - connection to the Store to change state
- ; newState - the desired state
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnGoToAccessibilityState(BSStoreConnID connection, BSAccessibilityState newState)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnGoToAccessibilityState
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnGoToAccessibilityState - requests that a Container change
- ; its accessibility state to the one desired
- ;
- ; Inputs: connection - connection to the Container to change state
- ; newState - the desired state
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnGoToAccessibilityState(BSContainerConnID connection, BSAccessibilityState newState)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnGoToAccessibilityState
- ENDIF
-
- ;
- ;****************************************************************************
- ; *****************************************************************************
- ;
- ; Block Storage Configuration
- ;
- ; *****************************************************************************
- ; ***************************************************************************
- ;
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnGetInfo - gets information about the Store a Connection indicates
- ;
- ; Inputs: infoConnection - the connection to the Store we want info about
- ;
- ; Outputs: infoBuffer - the information about the Store
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnGetInfo(BSStoreConnID infoConnection, BSStoreInfo *infoBuffer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnGetInfo
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreCreate - creates a new Store. The Store is not added into the Block
- ; Storage Name Store hierarchy.
- ;
- ; Inputs: <none>
- ;
- ; Outputs: newStore - the ID of the new Store
- ; newStoreConnection - a connection to the created Store
- ;
- ; Returns: E_BSSuccess on success
- ; E_BSENoMoreStores if no more Stores can be allocated
- ; E_BSOutOfResources if other resources cannot be allocated
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreCreate(BSStoreID *newStore, BSStoreConnID *newStoreConnection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreCreate
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnDeleteAndClose - deletes the Store the current connection
- ; references and closes the connection
- ;
- ; Inputs: connection - the connection to the Store to be deleted
- ;
- ; Outputs: <none>
- ; Returns: E_BSSuccess on success
- ; E_BSStoreInUse if other connections are open to the Store
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnDeleteAndClose(BSStoreConnID connection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnDeleteAndClose
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnSetPartitionInfo - Sets data in a partition map entry on a Store
- ;
- ; Inputs: storeConnection - the connection to the Store
- ; partitionNum - the partition map entry to be set
- ; partitionInfo - a pointer to the new partition map entry info
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSPPINoPlugIn if the Store does not have a Partitioning Plug-in
- ; E_BSPPIOverlappingPartition if the requested partition overlaps
- ; another
- ; E_BSPPIOutOfStoreBounds if the request partition exceeds the limits
- ; of the Store
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnSetPartitionInfo(BSStoreConnID storeConnection, ItemCount partitionNum, BSPartitionDescriptor *partitionInfo)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnSetPartitionInfo
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnSetPartitionInfo - Gets data in a partition map entry on a Store
- ;
- ; Inputs: storeConnection - the connection to the Store
- ; partitionNum - the partition map entry to be retrieved
- ; partitionInfo - a pointer to the partition map entry info buffer
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSPPINoPlugIn if the Store does not have a Partitioning Plug-in
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnGetPartitionInfo(BSStoreConnID connection, ItemCount partitionNum, BSPartitionDescriptor *partitionInfo)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnGetPartitionInfo
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnMapPartition - Maps a partition from a Store onto another Store
- ;
- ; Inputs: srcConnection - the connection to the source Store
- ; partitionNum - the partition to be mapped
- ; destConnection - the connection to the destination Store
- ; destStartingBlock - where in the destination Store the mapped
- ; partition should be placed
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSPPINoPlugIn if the Store does not have a Partitioning Plug-in
- ; E_BSPPIMappingNotSupported if the mapping is not supported by either
- ; Store
- ; E_BSPPIPartitionNonExistant if the source partition doesn't exist
- ; E_BSEHierarchyTooDeep if this would create too many layers in the
- ; hierarchy (currently limited to 8)
- ;*****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnMapPartition(BSStoreConnID srcConnection, ItemCount partitionNum, BSStoreConnID destConnection, BSByteCount startingByte)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnMapPartition
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnGetComponents - Gets the components of a Store.
- ;
- ; Inputs: connection - the connection to the Store
- ; tableSize - size of the table to be filled in
- ; componentInfo - a pointer to an array of BSStoreComponentInfos
- ; to be filled in
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnGetComponents(BSStoreConnID connection, ItemCount tableSize, BSStoreComponent *componentInfo)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnGetComponents
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnMapDevice - Maps an entire device into a Store
- ;
- ; Inputs: srcDevice - the Name Registry ID of the device
- ; destConnection - the connection to the destination Store
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnMapDevice(RegEntryRef srcDevice, BSStoreConnID destConnection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnMapDevice
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnAssociateMappingPlugin - Attaches a Mapping Plug-in to a Store
- ;
- ; Inputs: connection - the connection to the Store
- ; mappingPlugin - the identifier of the Plugin to be attached
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSEPlugInNotFound if the plugin specified can't be found
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnAssociateMappingPlugin(BSStoreConnID connection, BSMappingPlugInRef mappingPlugin)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnAssociateMappingPlugin
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnAssociatePartitioningPlugin - Attaches a Partitioning Plug-in to
- ; a Store
- ;
- ; Inputs: connection - the connection to the Store
- ; mappingPlugin - the identifier of the Plugin to be attached
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; E_BSEPlugInNotFound if the plugin specified can't be found
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnAssociatePartitioningPlugin(BSStoreConnID connection, BSPartitioningPlugInRef mappingPlugin)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnAssociatePartitioningPlugin
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnPublish - makes a Store available for general use
- ;
- ; Inputs: connection - the connection to the Store
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnPublish(BSStoreConnID connection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnPublish
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnUnpublish - removes a Store from general use
- ;
- ; Inputs: connection - the connection to the Store
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnUnpublish(BSStoreConnID connection)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnUnpublish
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSStoreConnFormat - formats a Store in the specified format
- ;
- ; Inputs: connection - the connection to the Store
- ; formatType - the format number from possibleFormats in the
- ; BSStoreInfo structure
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSStoreConnFormat(BSStoreConnID connection, BSFormatIndex formatType)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSStoreConnFormat
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnGetInfo - gets information about the Container a Connection indicates
- ;
- ; Inputs: infoConnection - the connection to the Container we want info about
- ;
- ; Outputs: infoBuffer - the information about the Container
- ;
- ; Returns: E_BSSuccess if successful
- ; E_BSBadConnection if the connection ID has problems
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnGetInfo(BSContainerConnID infoConnection, BSContainerInfo *infoBuffer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnGetInfo
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerCreate - Creates a new Container. The Container is not added
- ; into the Block Storage Container Hierarchy
- ;
- ; Inputs: <none>
- ;
- ; Outputs: newContainer - a connection to the newly created Container
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerCreate(BSContainerConnID *newContainer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerCreate
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnDeleteAndClose - deletes the Container and closes the
- ; connection to it. No other connections to the Container may be open.
- ;
- ; Inputs: deleteContainer - connection to the Container to be deleted
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnDeleteAndClose(BSContainerConnID deleteContainer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnDeleteAndClose
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnInsertContainer - inserts a Container into another Container
- ;
- ; Inputs: destContainer - a connection to the Container to insert into
- ; insertContainer - connection to the Container to be inserted
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnInsertContainer(BSContainerConnID destContainer, BSContainerConnID putContainer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnInsertContainer
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnPublish - makes a Container available for use. Generates
- ; notifications as necessary
- ;
- ; Inputs: publishContainer - connection to the Container to be published
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnPublish(BSContainerConnID publishContainer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnPublish
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnUnpublish - removes a Container from general accessibility,
- ; does not delete it. The Container must not have any open connections or
- ; published children.
- ;
- ; Inputs: unpublishContainer - the Container to unpublish
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnUnpublish(BSContainerConnID unpublishContainer)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnUnpublish
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnSetDevice - sets the device the Container plug-in will
- ; associate with. Should be called before BSContainerConnAssociatePlugIn
- ; for bare Containers.
- ;
- ; Inputs: connection - a connection to the Container we're associating
- ; the plug-in with
- ; deviceNode - the device the Container plug-in will interact with
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnSetDevice(BSContainerConnID connection, RegEntryRef deviceNode)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnSetDevice
- ENDIF
-
- ;
- ;******************************************************************************
- ;
- ; BSContainerConnAssociatePlugIn - Associates a Container plug-in with a
- ; Container
- ;
- ; Inputs: connection - a connection to the Container we're associating
- ; the plug-in with
- ; plugIn - the new plug in to be associated
- ;
- ; Outputs: <none>
- ;
- ; Returns: E_BSSuccess if successful
- ;
- ; *****************************************************************************
- ;
- ;
- ; extern OSStatus BSContainerConnAssociatePlugIn(BSContainerConnID connection, BSContainerPlugInRef plugIn)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION BSContainerConnAssociatePlugIn
- ENDIF
-
- ENDIF
- ENDIF ; __BLOCKSTORAGE__
-
-